package modelo.io;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ManejadorArchivos {

    private static ManejadorArchivos instancia;

    private ManejadorArchivos() {
//        this.dao = new ClienteDAO();
    }

    public static ManejadorArchivos instancia() {
        if (instancia == null) {
            instancia = new ManejadorArchivos();
        }
        return instancia;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return new CloneNotSupportedException("No se puede clonar ManejadorArchivos.");
    }

    public Properties obtenerArchivoPropiedades(String ruta) throws Exception {
        Properties propiedadesBD = null;
        try {
            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            propiedadesBD = new Properties();
            InputStream in = classLoader.getResourceAsStream(ruta);
            propiedadesBD.load(in);
            in.close();
        } catch (IOException ex) {
            throw new Exception("Ocurrio un error al intentar cargar el archivo", ex);
        }
        return propiedadesBD;
    }
    
    public String obtenerPropiedad(String ruta, String nombrePropiedad) throws Exception {
//        String propiedad = "";
        Properties propiedades = null;
        try {
            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            propiedades = new Properties();
            InputStream in = classLoader.getResourceAsStream(ruta);
            propiedades.load(in);
            in.close();
            return propiedades.getProperty(nombrePropiedad);
        } catch (IOException ex) {
            return null;
//            throw new Exception("Ocurrio un error al intentar cargar el archivo", ex);
        }
//        return propiedad;
    }
}
